Eddie Module on global Change
Install libraries
Install libraries for use to examine data using tidyverse this only has to be done one time and a # can be put in front of the code to comment it out so it does not run in the future as now.
# install.packages("tidyverse")
# install.packages("readxl")
# install.packages("janitor")
# install.packages("lubridate")
# install.packages("broom")
# install.packages("patchwork")
# install.packages("plotly")
Load libraries
Load the libraries each time you run a script or program
library(tidyverse) # loads a lot of libraries in this one to add more functionality
library(readxl) # allows you to read in excel files
library(janitor) # cleans up column names and removes empty columns if wanted
library(lubridate) # allows easy conversion of varaibles to date format
library(broom) # cleans up output for easy presentation
library(scales) # works with the x and y scales on the plots
library(patchwork) # allows you to plot several graphs on one page
library(plotly)
turn off sci notation
options(scipen=999)
Read files
Recent global temperatures
global_temp.df <- read_excel("../data/climate_change_module_dataset.xls",
sheet = "Global Temperature",
skip=4)
Global CO2
loa_co2.df <- read_excel("../data/climate_change_module_dataset.xls",
sheet = "Mauna Loa CO2",
skip=4)
Vostock temperatures
vostok_temp.df <- read_excel("../data/climate_change_module_dataset.xls",
sheet = "Vostok Temp",
skip=4)
Vostock CO2
vostok_co2.df <- read_excel("../data/climate_change_module_dataset.xls",
sheet = "Vostok CO2",
skip=4)
Plot of global temperatures
Note this uses a different approach to explore the data The graph will be interactive
global_temp.plot <- global_temp.df %>%
ggplot(aes(year, temp_c)) +
geom_line()+
geom_point()
# global_temp.plot
ggplotly(global_temp.plot)
Plot of global tempreatures - subset of data
# Enter the years here
min_year_global = 1976
max_year_global = 1998
global_temp.df %>%
filter(year >= min_year_global & year <= max_year_global) %>%
summarize(time_difference_years = max_year_global - min_year_global,
min_temp_c = min(temp_c, na.rm=TRUE),
max_temp_c = max(temp_c, na.rm=TRUE))
global_temp.plot <- global_temp.df %>%
filter(year >= min_year_global & year <= max_year_global) %>%
ggplot(aes(year, temp_c)) +
geom_line()+
geom_point()
# global_temp.plot
ggplotly(global_temp.plot)
Plot of Vostok tempreatures ——
vostok_temp.plot <- vostok_temp.df %>%
ggplot(aes(ice_age_year_bp, temp_c)) +
geom_line()+
geom_point() +
scale_x_continuous(label=comma)
# vostok_temp.plot
ggplotly(vostok_temp.plot)
Plot of Vostok tempreatures - subset
# Enter the years here
min_year_vostok = 231979
max_year_vostok = 237643
# run this to see the number of years
max_year_vostok - min_year_vostok
[1] 5664
vostok_temp.df %>%
filter(ice_age_year_bp >= min_year_vostok & ice_age_year_bp <= max_year_vostok) %>%
summarize(time_difference = max_year_vostok - min_year_vostok,
min_temp_c = min(temp_c, na.rm=TRUE),
max_temp_c = max(temp_c, na.rm=TRUE))
# plot of temp over time for sub area
vostok_temp.plot <- vostok_temp.df %>%
filter(ice_age_year_bp >= min_year_vostok & ice_age_year_bp <= max_year_vostok) %>%
ggplot(aes(ice_age_year_bp, temp_c)) +
geom_line()+
geom_point()
# vostok_temp.plot
ggplotly(vostok_temp.plot)
LS0tCnRpdGxlOiAiRWRkaWUgTW9kdWxlIEdsb2JhbCBDaGFuZ2UiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCiMgRWRkaWUgTW9kdWxlIG9uIGdsb2JhbCBDaGFuZ2UKCiMjIEluc3RhbGwgbGlicmFyaWVzICAgICAKSW5zdGFsbCAgbGlicmFyaWVzIGZvciB1c2UgdG8gZXhhbWluZSBkYXRhIHVzaW5nIHRpZHl2ZXJzZSB0aGlzIG9ubHkgaGFzIHRvIGJlIGRvbmUgb25lIHRpbWUgYW5kIGEgIyBjYW4gYmUgcHV0IGluIGZyb250IG9mIHRoZSBjb2RlIHRvIGNvbW1lbnQgaXQgb3V0IHNvIGl0IGRvZXMgbm90IHJ1biBpbiB0aGUgZnV0dXJlIGFzIG5vdy4gICAKYGBge3IgaW5zdGFsbCBsaWJyYXJpZXN9CiMgaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikKIyBpbnN0YWxsLnBhY2thZ2VzKCJyZWFkeGwiKQojIGluc3RhbGwucGFja2FnZXMoImphbml0b3IiKQojIGluc3RhbGwucGFja2FnZXMoImx1YnJpZGF0ZSIpCiMgaW5zdGFsbC5wYWNrYWdlcygiYnJvb20iKQojIGluc3RhbGwucGFja2FnZXMoInBhdGNod29yayIpCiMgaW5zdGFsbC5wYWNrYWdlcygicGxvdGx5IikKYGBgCgojIyBMb2FkIGxpYnJhcmllcyAgICAKTG9hZCB0aGUgbGlicmFyaWVzIGVhY2ggdGltZSB5b3UgcnVuIGEgc2NyaXB0IG9yIHByb2dyYW0gICAKYGBge3IgbG9hZCBsaWJyYXJpZXMsIG1lc3NhZ2U9VFJVRSwgd2FybmluZz1UUlVFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkgIyBsb2FkcyBhIGxvdCBvZiBsaWJyYXJpZXMgaW4gdGhpcyBvbmUgdG8gYWRkIG1vcmUgZnVuY3Rpb25hbGl0eQpsaWJyYXJ5KHJlYWR4bCkgIyBhbGxvd3MgeW91IHRvIHJlYWQgaW4gZXhjZWwgZmlsZXMKbGlicmFyeShqYW5pdG9yKSAjIGNsZWFucyB1cCBjb2x1bW4gbmFtZXMgYW5kIHJlbW92ZXMgZW1wdHkgY29sdW1ucyBpZiB3YW50ZWQKbGlicmFyeShsdWJyaWRhdGUpICMgYWxsb3dzIGVhc3kgY29udmVyc2lvbiBvZiB2YXJhaWJsZXMgdG8gZGF0ZSBmb3JtYXQKbGlicmFyeShicm9vbSkgIyBjbGVhbnMgdXAgb3V0cHV0IGZvciBlYXN5IHByZXNlbnRhdGlvbgpsaWJyYXJ5KHNjYWxlcykgIyB3b3JrcyB3aXRoIHRoZSB4IGFuZCB5IHNjYWxlcyBvbiB0aGUgcGxvdHMKbGlicmFyeShwYXRjaHdvcmspICMgYWxsb3dzIHlvdSB0byBwbG90IHNldmVyYWwgZ3JhcGhzIG9uIG9uZSBwYWdlCmxpYnJhcnkocGxvdGx5KQpgYGAKICAgCiAgIAojIHR1cm4gb2ZmIHNjaSBub3RhdGlvbgpgYGB7cn0Kb3B0aW9ucyhzY2lwZW49OTk5KQpgYGAKCiAgIAojIyBSZWFkIGZpbGVzClJlY2VudCBnbG9iYWwgdGVtcGVyYXR1cmVzIApgYGB7cn0KZ2xvYmFsX3RlbXAuZGYgPC0gcmVhZF9leGNlbCgiLi4vZGF0YS9jbGltYXRlX2NoYW5nZV9tb2R1bGVfZGF0YXNldC54bHMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVldCA9ICJHbG9iYWwgVGVtcGVyYXR1cmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXA9NCkKYGBgCgpHbG9iYWwgQ088c3ViPjI8L3N1Yj4KYGBge3J9CmxvYV9jbzIuZGYgPC0gcmVhZF9leGNlbCgiLi4vZGF0YS9jbGltYXRlX2NoYW5nZV9tb2R1bGVfZGF0YXNldC54bHMiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVldCA9ICJNYXVuYSBMb2EgQ08yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwPTQpCmBgYAoKVm9zdG9jayB0ZW1wZXJhdHVyZXMKYGBge3J9CnZvc3Rva190ZW1wLmRmIDwtIHJlYWRfZXhjZWwoIi4uL2RhdGEvY2xpbWF0ZV9jaGFuZ2VfbW9kdWxlX2RhdGFzZXQueGxzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVldCA9ICJWb3N0b2sgVGVtcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwPTQpCmBgYAoKVm9zdG9jayBDTzxzdWI+Mjwvc3ViPgpgYGB7cn0Kdm9zdG9rX2NvMi5kZiA8LSByZWFkX2V4Y2VsKCIuLi9kYXRhL2NsaW1hdGVfY2hhbmdlX21vZHVsZV9kYXRhc2V0LnhscyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQgPSAiVm9zdG9rIENPMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwPTQpCmBgYAoKIyBQbG90IG9mIGdsb2JhbCB0ZW1wZXJhdHVyZXMKTm90ZSB0aGlzIHVzZXMgYSBkaWZmZXJlbnQgYXBwcm9hY2ggdG8gZXhwbG9yZSB0aGUgZGF0YQpUaGUgZ3JhcGggd2lsbCBiZSBpbnRlcmFjdGl2ZQpgYGB7cn0KZ2xvYmFsX3RlbXAucGxvdCA8LSBnbG9iYWxfdGVtcC5kZiAlPiUKICAgICAgICAgICAgICAgICAgICAgICAgICBnZ3Bsb3QoYWVzKHllYXIsIHRlbXBfYykpICsKICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX2xpbmUoKSsKICAgICAgICAgICAgICAgICAgICAgICAgICBnZW9tX3BvaW50KCkKIyBnbG9iYWxfdGVtcC5wbG90CmdncGxvdGx5KGdsb2JhbF90ZW1wLnBsb3QpCmBgYAoKCgojIFBsb3Qgb2YgZ2xvYmFsIHRlbXByZWF0dXJlcyAtIHN1YnNldCBvZiBkYXRhCmBgYHtyfQojIEVudGVyIHRoZSB5ZWFycyBoZXJlCm1pbl95ZWFyX2dsb2JhbCA9IDE5NzYKbWF4X3llYXJfZ2xvYmFsID0gIDE5OTgKYGBgCgoKYGBge3J9Cmdsb2JhbF90ZW1wLmRmICU+JQogIGZpbHRlcih5ZWFyID49IG1pbl95ZWFyX2dsb2JhbCAmIHllYXIgPD0gbWF4X3llYXJfZ2xvYmFsKSAlPiUKICBzdW1tYXJpemUodGltZV9kaWZmZXJlbmNlX3llYXJzID0gbWF4X3llYXJfZ2xvYmFsIC0gbWluX3llYXJfZ2xvYmFsLAogICAgICAgICAgIG1pbl90ZW1wX2MgPSBtaW4odGVtcF9jLCBuYS5ybT1UUlVFKSwgCiAgICAgICAgICAgIG1heF90ZW1wX2MgPSBtYXgodGVtcF9jLCBuYS5ybT1UUlVFKSkKYGBgCgoKYGBge3J9Cmdsb2JhbF90ZW1wLnBsb3QgPC0gZ2xvYmFsX3RlbXAuZGYgJT4lCiAgZmlsdGVyKHllYXIgPj0gbWluX3llYXJfZ2xvYmFsICYgeWVhciA8PSBtYXhfeWVhcl9nbG9iYWwpICU+JQogIGdncGxvdChhZXMoeWVhciwgdGVtcF9jKSkgKwogIGdlb21fbGluZSgpKwogIGdlb21fcG9pbnQoKQojIGdsb2JhbF90ZW1wLnBsb3QKZ2dwbG90bHkoZ2xvYmFsX3RlbXAucGxvdCkKYGBgCgojIFBsb3Qgb2YgVm9zdG9rIHRlbXByZWF0dXJlcyAtLS0tLS0KCmBgYHtyfQp2b3N0b2tfdGVtcC5wbG90IDwtIHZvc3Rva190ZW1wLmRmICU+JQogIGdncGxvdChhZXMoaWNlX2FnZV95ZWFyX2JwLCB0ZW1wX2MpKSArCiAgZ2VvbV9saW5lKCkrCiAgZ2VvbV9wb2ludCgpICsKICBzY2FsZV94X2NvbnRpbnVvdXMobGFiZWw9Y29tbWEpCiMgdm9zdG9rX3RlbXAucGxvdApnZ3Bsb3RseSh2b3N0b2tfdGVtcC5wbG90KQpgYGAKCiMgUGxvdCBvZiBWb3N0b2sgdGVtcHJlYXR1cmVzIC0gc3Vic2V0CmBgYHtyfQojIEVudGVyIHRoZSB5ZWFycyBoZXJlCm1pbl95ZWFyX3Zvc3RvayA9IDIzMTk3OQptYXhfeWVhcl92b3N0b2sgPSAgMjM3NjQzCmBgYAoKYGBge3J9CnZvc3Rva190ZW1wLmRmICU+JQogIGZpbHRlcihpY2VfYWdlX3llYXJfYnAgPj0gbWluX3llYXJfdm9zdG9rICYgaWNlX2FnZV95ZWFyX2JwIDw9IG1heF95ZWFyX3Zvc3RvaykgJT4lCiAgc3VtbWFyaXplKHRpbWVfZGlmZmVyZW5jZV95ZWFycyA9IG1heF95ZWFyX3Zvc3RvayAtIG1pbl95ZWFyX3Zvc3RvaywKICAgICAgICAgICAgbWluX3RlbXBfYyA9IG1pbih0ZW1wX2MsIG5hLnJtPVRSVUUpLCAKICAgICAgICAgICAgbWF4X3RlbXBfYyA9IG1heCh0ZW1wX2MsIG5hLnJtPVRSVUUpKQpgYGAKCgpgYGB7cn0KIyBwbG90IG9mIHRlbXAgb3ZlciB0aW1lIGZvciBzdWIgYXJlYQp2b3N0b2tfdGVtcC5wbG90IDwtIHZvc3Rva190ZW1wLmRmICU+JQogIGZpbHRlcihpY2VfYWdlX3llYXJfYnAgPj0gbWluX3llYXJfdm9zdG9rICYgaWNlX2FnZV95ZWFyX2JwIDw9IG1heF95ZWFyX3Zvc3RvaykgJT4lCiAgZ2dwbG90KGFlcyhpY2VfYWdlX3llYXJfYnAsIHRlbXBfYykpICsKICBnZW9tX2xpbmUoKSsKICBnZW9tX3BvaW50KCkKIyB2b3N0b2tfdGVtcC5wbG90CmdncGxvdGx5KHZvc3Rva190ZW1wLnBsb3QpCgpgYGAKCgogICAgICAgICAgICAgICAgICAgICAgICAKCgo=